package com.example.shirostarterdemo.realm;

import org.apache.shiro.authc.*;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.crypto.hash.SimpleHash;
import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection;

/**
 * /**
 * ShiroTest   com.example.shirodemo.realm
 *
 * @author：黄玉刚 -成都电安惠科有限公司
 * @date： 2019/11/30 20:16
 * @Description ：
 */
public class MyRealm extends AuthorizingRealm {


    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
        return null;
    }

    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {

        String username = (String) authenticationToken.getPrincipal();
        System.out.println("从数据库中获取UserName信息");
        if (!"helloboy".equals(username)) {
            throw new UnknownAccountException("账户不存在！");
        }

        //1） pricipal :认证的实体信息，可以是user那么，也可以是实体对象
        //2） credential：数据库查询出的密码
        //3） realname:当前realm对象的name，调用父类的getName()方法即可
        System.out.println("RealmName:"+getName());
        return new SimpleAuthenticationInfo(username, "123", getName());

    }
}
